Facility for initiating automatic exchange of file(s) between mobile devices

ABSTRACT

A facility is provided for automatically exchanging, via mobile ad hoc network transfer, a file between mobile devices based on derived user preferences and context. The facility includes monitoring use of one or more files received on a mobile device. Contextual user preferences are derived for one or more future automated file transfers to the mobile device based on the monitoring. A contextual user preference request is sent from the mobile device to an other mobile device based, at least in part, on the other mobile device being within mobile ad hoc network transfer range of the mobile device. The contextual user preference request asks that at least one file on the other mobile device related to at least one of the contextual user preferences be automatically transferred to the mobile device using mobile ad hoc network transfer.

BACKGROUND

There currently exist a variety of portable computing devices (i.e.,mobile devices), including wireless computing devices, such as mobiletelephones, personal digital assistants (PDA's), tablets, laptopcomputers, wireless computers, etc., which are small, lightweight andeasily carried by users. These mobile devices (including cellulartelephones, internet protocol (IP) telephones, smartphone devices, etc.)can communicate audio and data packets over wireless networks. Inaddition, mobile devices may possess various software applications, suchas a web browser application, a music player, an email program, games,etc., which allow a user to personalize configuration and use of themobile device.

Providing enhancements to mobile devices, or software applications formobile devices, continues to be an area of interest and ongoing researchfor, for instance, establishing commercial advantage in the industry.

SUMMARY

Shortcomings of the prior art are overcome and additional advantages areprovided through the provision of a computer-implemented method, whichincludes monitoring use of one or more files received on a mobiledevice. Additionally, the method includes deriving contextual userpreferences for one or more future automated file transfers to themobile device based on the monitoring, and sending a contextual userpreference request from the mobile device to an other mobile devicebased, at least in part, on the other mobile device being within mobilead hoc network transfer range of the mobile device. The contextual userpreference request asks that at least one file on the other mobiledevice related to at least one of the contextual user preferences beautomatically transferred to the mobile device using mobile ad hocnetwork transfer.

In another aspect, a system is provided for facilitating mobile ad hocnetwork exchange of a file between mobile devices. The system includes amemory, and a processing circuit communicatively coupled to the memory.The system performs a method, which includes monitoring use of one ormore files received on a mobile device. The method also includesderiving contextual user preferences for one or more future automatedfile transfers to the mobile device based on the monitoring, and sendinga contextual user preference request from the mobile device to an othermobile device based, at least in part, on the other mobile device beingwithin mobile ad hoc network transfer range of the mobile device. Thecontextual user preference request asks that at least one file relatedto at least one of the contextual user preferences be automaticallytransferred to the mobile device using mobile ad hoc network transfer.

In a further aspect, a computer program product is provided forfacilitating mobile ad hoc network exchange of a file between mobiledevices. The computer program product includes a computer readablestorage medium having computer readable program code embodied therewith,which is executable by a processor to perform a method, including:monitoring use of one or more files received on a mobile device;deriving contextual user preferences for one or more future automatedfile transfers to the mobile device based on the monitoring; and sendinga contextual user preference request from the mobile device to an othermobile device based, at least in part, on the other mobile device beingwithin mobile ad hoc network transfer range of the mobile device. Thecontextual user preference request asks that at least one file relatedto at least one of the contextual user preferences be automaticallytransferred to the mobile device using mobile ad hoc network transfer.

Additional features and advantages are realized through the techniquesof the present invention. Other embodiments and aspects of the inventionare described in detail herein and are considered a part of the claimedinvention.

BRIEF DESCRIPTION OF THE DRAWINGS

One or more aspects of the present invention are particularly pointedout and distinctly claimed as examples in the claims at the conclusionof the specification. The foregoing and other objects, features, andadvantages of the invention are apparent from the following detaileddescription taken in conjunction with the accompanying drawings inwhich:

FIG. 1 depicts one embodiment of a mobile device which allows a user toselect to send a file via mobile ad hoc network transfer from the mobiledevice to another, authorized mobile device;

FIG. 2 depicts one embodiment of a process for automatically exchanginga file between mobile devices, in accordance with one or more aspects ofthe present invention;

FIG. 3 depicts one embodiment of a process for tracking mobile ad hocnetwork file transfers and monitoring usage of transferred files, inaccordance with one or more aspects of the present invention;

FIG. 4 depicts one embodiment of a process for cognitively analyzingtransferred file usage to derive usage preferences for future automatedfile transfers, in accordance with one or more aspects of the presentinvention;

FIG. 5 depicts one embodiment of an exchange of a contextual userpreference(s) with one or more proximally located, authorized mobiledevice(s) to initiate automatic mobile ad hoc network file transfer, inaccordance with one or more aspects of the present invention;

FIG. 6 depicts one embodiment of a computing system which may implementor facilitate implementing file exchange processing, in accordance withone or more aspects of the present invention;

FIG. 7 depicts one embodiment of a cloud computing environment which mayfacilitate implementing, or be used in association with one or moreaspects of the present invention; and

FIG. 8 depicts an example of extraction model layers, which mayfacilitate implementing file exchange processing, in accordance with oneor more aspects of the present invention.

DETAILED DESCRIPTION

The description that follows includes exemplary devices, systems,methods, techniques and instruction sequences that embody techniques ofthe present invention. However, it should be understood that thedescribed invention may be practiced, in one or more aspects, withoutthe specified details. In other instances, known protocols, structuresand techniques have not been shown in detail in order not to obscure theinvention. Those of ordinary skill in the art will appreciate that thedescribed techniques and mechanisms may be applied to various systems tofacilitate automatic exchange of files between mobile devices, inaccordance with one or more aspects of the present invention.

Generally stated, disclosed herein is a facility for initiating anautomatic exchange of one or more files between co-located mobiledevices, based on derived user preferences and contextual awareness,using mobile ad hoc network transfer (such as via Apple™ AirDrop™)between the mobile devices. The facility disclosed, in part, learns bymonitoring how a user makes use of a transferred file (such as a mobilead hoc transferred file), derives preferences for future files that theuser would like to receive based on cognitive analysis, and initiates acontextual transfer of one or more files from one or more co-located,authorized mobile devices without user involvement.

For instance, consider two mobile device users at a sports event. User Atakes a picture on the user's mobile device and would like to share thepicture with user B. Today, this can be performed without the need of aninfrastructure network through direct ad hoc network transferfacilities, whereby user A manually initiates and oversees transfer ofthe picture to user B's mobile device. The facility disclosed hereinadvantageously enhances this process, by learning (for instance) thatuser B would always like to receive pictures like this, and when user Aand user B are co-located (that is, their mobile devices are within agiven range of each other needed for mobile ad hoc network transfer),files such as the photograph are to be automatically transferred betweenthe two devices using a mobile ad hoc network connection.

Mobile ad hoc networks enable mobile devices to transfer files withoutthe use of an existing infrastructure network. For instance, the serviceenables nearby devices to transfer files, even if those devices are notconnected to the same external Wi-Fi network. This is typically achievedthrough a combination of Wi-Fi and Bluetooth. More particularly, theservice may use, in one or more embodiments, Bluetooth to create apeer-to-peer Wi-Fi network between two mobile devices. Each mobiledevice creates a firewall around the connection and files may be sentdirectly between the two devices, including encrypted if desired. Boththe receiving and sending devices need to be co-located though, forinstance, within 30 feet or less of each other, that is, within a mobilead hoc network transfer range.

A typical use of a mobile ad hoc network is depicted in FIG. 1. Asshown, a mobile device 100 allows user A to select and share aphotograph 101 with user B. Today this may be accomplished as follows.Both users' mobile devices are located within, for instance, 30 feet ofeach other, and have Bluetooth and Wi-Fi turned on, and have authorizedmobile ad hoc network exchange between them. User A of mobile device 100selects a picture 101 (or more generally a file) to share, and from alist of nearby AirDrop contacts 102, selects “user B's phone”. A directconnection is created between the two mobile devices 103. Mobile deviceuser B receives a notification requesting that a file from user A beexchanged. If user B accepts, the file is transferred to user B's mobiledevice.

Note that, the above process is, at least in part, a manual process. Amobile device user must wait until an intended contact is close by andmanually select the file(s) to share. Disclosed herein is an automatedapproach for exchanging files between mobile devices across a mobile adhoc network. In particular, described herein (in one or more aspects) isa facility which learns a user's preferences for what types of files orresources the recipient may wish to receive across a mobile ad hocnetwork, and on which devices of the recipient, and initiates anautomatic exchange of such files (from one or more authorized contacts)via a mobile ad hoc network when the users' devices are within range.

As described further herein, the facility disclosed enables, by way ofexample, a variety of use cases. For instance, the facility enablesautomatically exchanging photographs between two users when the user'smobile devices are co-located based on the users preferences. As anexample, a request may be transmittal to send user B all photographsthat user B appears in that were taken at a sporting event, but do notautomatically send photographs of user B in other settings. As anotherexample, the facility disclosed herein may allow for automaticallyexchanging a spreadsheet document between two users, but only acrossspecific devices. For instance, a request may be transmitted to senduser B the latest project tracking spreadsheet, but only to user B'stablet device, not to user B's smartphone device. Further, the facilitydisclosed herein may be used to automatically exchange contact detailswhen a group of users are co-located. For instance, a request may betransmitted to share user C's contact details only when user A and B areco-located. Note that as used herein co-located or co-location refers tothe mobile devices being within range of each other sufficient to allowfor mobile ad hoc network file transfer.

By way of further example, FIG. 2 depicts one embodiment of a processfor exchanging files between co-located mobile devices, in accordancewith one or more aspects of the present invention. As shown, the processincludes tracking or monitoring, for instance, via software, how files,such as pictures, documents, etc. received from another mobile device(s)via mobile ad hoc network transfer are being used on the mobile devicereceiving the files 200. Cognitive analysis of file usage is used toderive user preferences about what types of files the mobile device userwould like to receive in the future from other mobile devices 210. Oneor more of these contextual user preferences may be exchanged withnearby or co-located mobile devices that are in a contact listing of themobile device providing the contextual user preference(s) 220. Based onthe other mobile device containing a file related to (e.g., matching)one or more of the user's preferences, the file is automatically sent bythe other mobile device to the user's mobile device via mobile ad hocnetwork transfer.

Advantageously, the facility disclosed herein cognitively analyzes howfiles received on a mobile device, such as via mobile ad hoc networktransfer, are used on that mobile device for the purpose of derivinguser preferences for future automated file transfers to the mobiledevice. The facility sends one or more contextual user preferences tonearby mobile devices in the user's contacts list requesting that anyfiles which related to or match derived user preferences beautomatically forwarded using mobile ad hoc network transfer. Note alsothat, in one or more embodiments, only requests within the context ofthe device's current location are sent. Advantageously, an easy,intelligent approach is thus presented to sharing files between mobiledevice users.

FIGS. 3-5 depict a more detailed example of a facility such as disclosedherein. Referring to FIG. 3, a mobile ad hoc network transfer 301 isshown to be received at a mobile device 310 from another mobile device300 which is co-located with mobile device 310. In the embodimentillustrated, a file 305, such as a photograph, document or otherresource is transferred from mobile device 300 to mobile device 310. Asshown, the facility monitors how files, such as photos, contacts,resources, etc. that were received via mobile ad hoc network transferare being used on the mobile device. The files could be received, inpart, manually (for instance, by one user manually sharing a photo withanother user via a mobile ad hoc network connection), or could have beenreceived automatically as described herein.

In operation, upon mobile device 310 receiving file 305 over a mobile adhoc network, information about the transfer is stored in a receivedfiles repository 312. The stored information may include informationsuch as the mobile device user who initiated the transfer and sent thefile, what file was transferred, the location where the transfer tookplace (for instance, via a Global Positioning System (GPS) capability onthe mobile device), and the date and time of the transfer. A file usagemonitor 314 may track how and when the file is used on the mobile device310. For instance, the file usage monitor 314 may determine whether therecipient immediately deleted the file upon receipt, or whether therecipient shared the file on a social network (for instance, shared thephoto on Facebook), and may determine how many times the recipient madeuse of the file (for instance, how many times did the recipient view thephoto). Each usage of the file, as tracked by the file usage monitor314, may be recorded in a file usage repository 316.

FIG. 4 depicts a more detailed example of a cognitive analysis stage toderive user preferences, in accordance with one or more aspects of thepresent invention. This stage may make use of a cognitive system 400 toanalyze how a user is utilizing files received from mobile ad hocnetwork transfers for the purposes of deriving their preferences forfuture such transfers. In one or more implementations, the cognitivesystem 400 may be, for instance, a cloud-based system. One suchcognitive system is the Watson™ system available from InternationalBusiness Machines Corporation of Armonk, N.Y., USA. The Watson™ systemis an application of advanced natural language processing, informationretrieval, knowledge representation and reasoning, and machine-learningtechnologies in the field of open domain question answering. The Watson™system is built on International Business Machine Corporation's DeepQA™technology used for hypothesis generation, massive evidence gathering,analysis, and scoring.

By way of example, cognitive system 400 may use as input data from thereceived files repository 312, which as noted may record who sent afile, what the file is, and when and where the file transfer occurred.Through analysis, patterns can emerge, such as a mapping file is alwayssent by a colleague when both colleagues are at an IBM facilitylocation. Additionally, cognitive system 400 may reference the fileusage repository 316, which as noted, records how received files aresubsequently used. Through analysis this information can identifypatterns such as learning which transferred files are unwanted becausethey are quickly deleted, and which files are more valued by the mobiledevice user because they have a high subsequent usage. Further, the file305 itself may be employed by cognitive system 400. In particular,cognitive techniques can be used to better understand the file itself.For example, for a picture, cognitive image analysis can be used tounderstand who's featured in a given picture. Through analysis, patternscan emerge such as a preference for pictures featuring the mobile deviceuser themselves, or featuring a third party.

Cognitive system 400 combines analysis of the above-noted inputs tocreate insights 411 and confidence levels 412 that may be stored in aderived user preferences repository 410. For example, using the analysisnoted, the following insight and confidence level may have beengenerated:

-   -   Insight: user has a preference for photographs featuring        themself and taken at sporting events; and    -   Confidence level: 85%

As illustrated in FIG. 5, as nearby contacts (i.e., mobile deviceslisted in the contacts file of a mobile device) come within mobile adhoc network transfer range, the facility may send one or more contextualuser preferences to each contact within range, effectively asking themobile device user “Do you have any of the following files?” If so, anautomated, mobile ad hoc network transfer is initiated as depicted.

By way of example, an existing mobile device contact 510 becomesavailable (for instance, user B's mobile device) meaning that thecontact users device has come within mobile ad hoc network transferrange and is therefore eligible for a mobile ad hoc network transfer.One or more derived user preferences 501, as described above, may besent to mobile device user 510 from mobile device 500. Note that theuser preferences are contextual user preferences, that is, for example,one user preferences within the context of the current device location.For instance, if the mobile device is currently located in a sportsstadium, and the user of mobile device 500 has a preference for theirpicture being taken during sporting events, then this request is sent tothe contact mobile device 510 (e.g., do you have any pictures of metaken at this event at this sports stadium?). If the location of themobile device is not a sports stadium, then this particular contextualuser preference need not be sent. As another example, if a user wishesto receive a latest copy of a tracking spreadsheet from user B's mobiledevice, then a request may be sent to that contact asking if there is anew version. However, if the user is using their mobile device, andtheir preference is only to receive the spreadsheet on their tablet,then this request would not be sent. As another example, users A, B, andC may be co-located, with user B being listed in user A's contacts, anduser C in user B's contacts, in which case, a request may be generatedthat user C automatically send user A user C's contact details.

Mobile device 510 receives the user request via the mobile ad hocnetwork transfer, and when the device has the requested file (e.g., apicture of user A at a sports stadium, or the latest copy of aspreadsheet, etc.), a mobile ad hoc network transfer 502 is initiatedautomatically forwarding the requested file to mobile device 500. Ifdesired, a confirmation request to a receiving or sending user's mobiledevice may be provided to initiate a transfer of a resource or receive aresource, before actually sending the resource.

Those skilled in the art will note from the above discussion thatprovided herein are computer-implemented methods, systems and computerprogram products for facilitating automated exchange of files betweenmobile devices. The method includes monitoring use of one or more filesreceived on a mobile device, for instance, via mobile ad hoc networktransfer, and deriving contextual user preferences for one or morefuture automated file transfers to the mobile device based on themonitoring. Further, the method may include sending a contextual userpreference request from the mobile device to an other mobile devicebased, at least in part, on the other mobile device being within mobilead hoc network range of the mobile device. The contextual userpreference request may request that at least one file on the othermobile device related to at least one of the contextual user preferencesbe automatically transferred to the mobile device using mobile ad hocnetwork transfer.

In one or more implementations, the other mobile device is an identifiedcontact in the mobile device. Further, the sending may be further based,at least in part, on a context of a current location of the mobiledevice matching a context associated with the at least one of thecontextual user preferences.

In one or more embodiments, the monitoring may include storing dataassociated with the file(s) received on the mobile device, and trackinghow the file(s) received on the mobile device is used. By way ofexample, the data may include identification of one or more mobiledevices sending the one or more files to the mobile device, and for atleast one file of the one or more files, a location where transfer ofthe at least one file via mobile ad hoc transfer occurred. By way ofspecific example, the data may include who initiated the transfer, andsent the file to the mobile device, what file was transferred, where thetransfer took place, and the date and time of the transfer.

In one or more implementations, the deriving may include analyzing thedata on how the file(s) received on the mobile device is used, and thefile(s) itself to derive the contextual user preferences for the one ormore future automated file transfers. Further, in one or moreembodiments, the analyzing may include creating insights and associatedconfidence levels for the insights based, at least in part, on the data,how the file(s) received on the mobile device is used, and the file(s)itself, where the contextual user preferences for the one or more futureautomated file transfers are based on the insights and the associatedconfidence levels for the insights. In one or more embodiments, thecontextual user preferences for the one or more future automated filetransfers may be based on the associated confidence levels of one ormore corresponding insights exceeding a set threshold.

Advantageously, disclosed herein is a facility for automaticallyexchanging files between mobile devices in proximity to each other andbased on derived user preferences and contextual awareness. The facilityimplements an automated process which includes: capturing and storinginformation about a resource transferred from one mobile device toanother mobile device of respective users, where the information mayinclude users who initiated and received a transfer of resources;detecting that the resource or file was transferred, and if desired, thelocation where the transfer occurred, as well as the date and time ofthe transfer; determining insights for the mobile device user receivingthe file, and a confidence level for the insights using a cognitivesystem, by analyzing user and sender information relating to the file,how the file is used, identifying the file and its components, includinganalyzing patterns of usage by the user, and location, time, and userinformation; and automatically sending a file between the mobiledevices, when the devices are within proximity of each other, based onthe insights and the confidence level. If desired, a confirmationrequest may be sent to a receiving or sending user's mobile device toinitiate a transfer of a resource or receive resource, beforeautomatically sending the resource.

Exemplary embodiments of a computing environment to implement one ormore aspects of the present invention are described below with referenceto FIGS. 6-8.

By way of further example, FIG. 6 depicts one embodiment of a computingenvironment 600, which includes a computing system 612. Examples ofwell-known computing systems, environments, and/or configurations thatmay be suitable for use with computer system 612 include, but are notlimited to, a server, a desktop computer, a work station, a mobiledevice, such as a wireless computer, a handheld or laptop computer ordevice, a mobile phone, a programmable consumer electronic device, atablet, a personal digital assistant (PDA), or the like.

Computing system 612 may be described in the general context of computersystem-executable instructions, such as program modules, being executedby a computer system. Generally, program modules may include routines,programs, objects, components, logic, data structures, and so on thatperform particular tasks or implement particular abstract data types.

As depicted in FIG. 6, computing system 612, is shown in the form of ageneral-purpose computing device. The components of computing system 612may include, but are not limited to, one or more processors orprocessing units 616, a system memory 623, and a bus 618 that couplesvarious system components including system memory 623 to processor 616.

In one embodiment, processor 616 may be based on the z/Architecture®offered by International Business Machines Corporation, or otherarchitectures offered by International Business Machines Corporation orother companies. z/Architecture® is a registered trademark ofInternational Business Machines Corporation, Armonk, N.Y., USA. Oneembodiment of the z/Architecture® is described in “z/Architecture®Principles of Operation,” IBM Publication No. SA22-7832-10, March 2015,which is hereby incorporated herein by reference in its entirety.

In other examples, it may be based on other architectures, such as thePower Architecture offered by International Business MachinesCorporation. One embodiment of the Power Architecture is described in“Power ISA™ Version 2.07B,” International Business Machines Corporation,Apr. 9, 2015, which is hereby incorporated herein by reference in itsentirety. POWER ARCHITECTURE is a registered trademark of InternationalBusiness Machines Corporation, Armonk, N.Y., USA. Other names usedherein may be registered trademarks, trademarks, or product names ofInternational Business Machines Corporation or other companies.

Bus 618 represents one or more of any of several types of busstructures, including a memory bus or memory controller, a peripheralbus, an accelerated graphics port, and a processor or local bus usingany of a variety of bus architectures. By way of example, and notlimitation, such architectures include Industry Standard Architecture(ISA) bus, Micro Channel Architecture (MCA) bus, Enhanced ISA (EISA)bus, Video Electronics Standards Association (VESA) local bus, andPeripheral Component Interconnect (PCI) bus.

Computing system 612 may include a variety of computer system readablemedia. Such media may be any available media that is accessible bycomputing system 612, and it includes both volatile and non-volatilemedia, removable and non-removable media.

System memory 623 can include computer system readable media in the formof volatile memory, such as random access memory (RAM) 630 and/or cachememory 632. Computing system 612 may further include otherremovable/non-removable, volatile/non-volatile computer system storagemedia. By way of example only, storage system 634 can be provided forreading from and writing to a non-removable, non-volatile magnetic media(not shown and typically called a “hard drive”). Although not shown, amagnetic disk drive for reading from and writing to a removable,non-volatile magnetic disk (e.g., a “floppy disk”), and an optical diskdrive for reading from or writing to a removable, non-volatile opticaldisk such as a CD-ROM, DVD-ROM or other optical media could be provided.In such instances, each can be connected to bus 618 by one or more datamedia interfaces. As described below, memory 623 may include at leastone program product having a set (e.g., at least one) of program modulesthat are configured to carry out the functions of embodiments of theinvention.

Program/utility 640, having a set (at least one) of program modules 642,may be stored in memory 632 by way of example, and not limitation, aswell as an operating system, one or more application programs, otherprogram modules, and program data. Each of the operating system, one ormore application programs, other program modules, and program data orsome combination thereof, may include an implementation of a networkingenvironment. Program modules 642 generally carry out the functionsand/or methodologies of embodiments of the invention as describedherein. Alternatively, a separate file exchange system, module, logic,etc., 601 may be provided within computing environment 612.

Computing system 612 may also communicate with one or more externaldevices 614 such as a keyboard, a pointing device, a display 624, etc.;one or more devices that enable a user to interact with computing system612; and/or any devices (e.g., network card, modem, etc.) that enablecomputing system 612 to communicate with one or more other computingdevices. Such communication can occur via Input/Output (I/O) interfaces622. Still yet, computing system 612 can communicate with one or morenetworks such as a local area network (LAN), a general wide area network(WAN), and/or a public network (e.g., the Internet) via network adapter620. As depicted, network adapter 620 communicates with the othercomponents of computing system, 612, via bus 618. It should beunderstood that although not shown, other hardware and/or softwarecomponents could be used in conjunction with computing system 612.Examples, include, but are not limited to: microcode, device drivers,redundant processing units, external disk drive arrays, RAID systems,tape drives, and data archival storage systems, etc.

One or more aspects may relate to or use cloud computing.

It is understood in advance that although this disclosure includes adetailed description on cloud computing, implementation of certainteachings recited herein are not limited to a cloud computingenvironment. Rather, embodiments of the present invention are capable ofbeing implemented in conjunction with any other type of computingenvironment now known or later developed.

Cloud computing is a model of service delivery for enabling convenient,on-demand network access to a shared pool of configurable computingresources (e.g. networks, network bandwidth, servers, processing,memory, storage, applications, virtual machines, and services) that canbe rapidly provisioned and released with minimal management effort orinteraction with a provider of the service. This cloud model may includeat least five characteristics, at least three service models, and atleast four deployment models.

Characteristics are as follows:

On-demand self-service: a cloud consumer can unilaterally provisioncomputing capabilities, such as server time and network storage, asneeded automatically without requiring human interaction with theservice's provider.

Broad network access: capabilities are available over a network andaccessed through standard mechanisms that promote use by heterogeneousthin or thick client platforms (e.g., mobile phones, laptops, and PDAs).

Resource pooling: the provider's computing resources are pooled to servemultiple consumers using a multi-tenant model, with different physicaland virtual resources dynamically assigned and reassigned according todemand. There is a sense of location independence in that the consumergenerally has no control or knowledge over the exact location of theprovided resources but may be able to specify location at a higher levelof abstraction (e.g., country, state, or datacenter).

Rapid elasticity: capabilities can be rapidly and elasticallyprovisioned, in some cases automatically, to quickly scale out andrapidly released to quickly scale in. To the consumer, the capabilitiesavailable for provisioning often appear to be unlimited and can bepurchased in any quantity at any time.

Measured service: cloud systems automatically control and optimizeresource use by leveraging a metering capability at some level ofabstraction appropriate to the type of service (e.g., storage,processing, bandwidth, and active user accounts). Resource usage can bemonitored, controlled, and reported providing transparency for both theprovider and consumer of the utilized service.

Service Models are as follows:

Software as a Service (SaaS): the capability provided to the consumer isto use the provider's applications running on a cloud infrastructure.The applications are accessible from various client devices through athin client interface such as a web browser (e.g., web-based email). Theconsumer does not manage or control the underlying cloud infrastructureincluding network, servers, operating systems, storage, or evenindividual application capabilities, with the possible exception oflimited user-specific application configuration settings.

Platform as a Service (PaaS): the capability provided to the consumer isto deploy onto the cloud infrastructure consumer-created or acquiredapplications created using programming languages and tools supported bythe provider. The consumer does not manage or control the underlyingcloud infrastructure including networks, servers, operating systems, orstorage, but has control over the deployed applications and possiblyapplication hosting environment configurations.

Infrastructure as a Service (IaaS): the capability provided to theconsumer is to provision processing, storage, networks, and otherfundamental computing resources where the consumer is able to deploy andrun arbitrary software, which can include operating systems andapplications. The consumer does not manage or control the underlyingcloud infrastructure but has control over operating systems, storage,deployed applications, and possibly limited control of select networkingcomponents (e.g., host firewalls).

Deployment Models are as follows:

Private cloud: the cloud infrastructure is operated solely for anorganization. It may be managed by the organization or a third party andmay exist on-premises or off-premises.

Community cloud: the cloud infrastructure is shared by severalorganizations and supports a specific community that has shared concerns(e.g., mission, security requirements, policy, and complianceconsiderations). It may be managed by the organizations or a third partyand may exist on-premises or off-premises.

Public cloud: the cloud infrastructure is made available to the generalpublic or a large industry group and is owned by an organization sellingcloud services.

Hybrid cloud: the cloud infrastructure is a composition of two or moreclouds (private, community, or public) that remain unique entities butare bound together by standardized or proprietary technology thatenables data and application portability (e.g., cloud bursting forload-balancing between clouds).

A cloud computing environment is service oriented with a focus onstatelessness, low coupling, modularity, and semantic interoperability.At the heart of cloud computing is an infrastructure comprising anetwork of interconnected nodes.

A cloud computing node may include a computer system/server, such as theone depicted in FIG. 6. Computer system/server 612 of FIG. 6 may bepracticed in distributed cloud computing environments where tasks areperformed by remote processing devices that are linked through acommunications network. In a distributed cloud computing environment,program modules may be located in both local and remote computer systemstorage media including memory storage devices. Computer system/server612 is capable of being implemented and/or performing any of thefunctionality set forth hereinabove.

Referring now to FIG. 7, illustrative cloud computing environment 50 isdepicted. As shown, cloud computing environment 50 comprises one or morecloud computing nodes 10 with which local computing devices used bycloud consumers, such as, for example, personal digital assistant (PDA)or cellular telephone 54A, desktop computer 54B, laptop computer 54C,and/or automobile computer system 54N may communicate. Nodes 10 maycommunicate with one another. They may be grouped (not shown) physicallyor virtually, in one or more networks, such as Private, Community,Public, or Hybrid clouds as described hereinabove, or a combinationthereof. This allows cloud computing environment 50 to offerinfrastructure, platforms and/or software as services for which a cloudconsumer does not need to maintain resources on a local computingdevice. It is understood that the types of computing devices 54A-N shownin FIG. 5 are intended to be illustrative only and that computing nodes10 and cloud computing environment 50 can communicate with any type ofcomputerized device over any type of network and/or network addressableconnection (e.g., using a web browser).

Referring to FIG. 8, a set of functional abstraction layers provided bycloud computing environment 50 (FIG.7) is shown. It should be understoodin advance that the components, layers, and functions shown in FIG. 8are intended to be illustrative only and embodiments of the inventionare not limited thereto. As depicted, the following layers andcorresponding functions are provided:

Hardware and software layer 60 includes hardware and softwarecomponents. Examples of hardware components include mainframes 61; RISC(Reduced Instruction Set Computer) architecture based servers 62;servers 63; blade servers 64; storage devices 65; and networks andnetworking components 66. In some embodiments, software componentsinclude network application server software 67 and database software 68.

Virtualization layer 70 provides an abstraction layer from which thefollowing examples of virtual entities may be provided: virtual servers71; virtual storage 72; virtual networks 73, including virtual privatenetworks; virtual applications and operating systems 74; and virtualclients 75.

In one example, management layer 80 may provide the functions describedbelow. Resource provisioning 81 provides dynamic procurement ofcomputing resources and other resources that are utilized to performtasks within the cloud computing environment. Metering and Pricing 82provide cost tracking as resources are utilized within the cloudcomputing environment, and billing or invoicing for consumption of theseresources. In one example, these resources may comprise applicationsoftware licenses. Security provides identity verification for cloudconsumers and tasks, as well as protection for data and other resources.User portal 83 provides access to the cloud computing environment forconsumers and system administrators. Service level management 84provides cloud computing resource allocation and management such thatrequired service levels are met. Service Level Agreement (SLA) planningand fulfillment 85 provide pre-arrangement for, and procurement of,cloud computing resources for which a future requirement is anticipatedin accordance with an SLA.

Workloads layer 90 provides examples of functionality for which thecloud computing environment may be utilized. Examples of workloads andfunctions which may be provided from this layer include: mapping andnavigation 91; software development and lifecycle management 92; virtualclassroom education delivery 93; data analytics processing 94;transaction processing 95; and file exchange processing 96.

The descriptions of the various embodiments of the present inventionhave been presented for purposes of illustration, but are not intendedto be exhaustive or limited to the embodiments disclosed. Manymodifications and variations will be apparent to those of ordinaryskills in the art without departing from the scope and spirit of thedescribed embodiments. The terminology used herein was chosen to bestexplain the principles of the embodiments, the practical application ortechnical improvement over technologies found in the marketplace, or toenable others of ordinary skills in the art to understand theembodiments disclosed herein.

The present invention may be a system, a method, and/or a computerprogram product at any possible technical detail level of integration.The computer program product may include a computer readable storagemedium (or media) having computer readable program instructions thereonfor causing a processor to carry out aspects of the present invention.

The computer readable storage medium can be a tangible device that canretain and store instructions for use by an instruction executiondevice. The computer readable storage medium may be, for example, but isnot limited to, an electronic storage device, a magnetic storage device,an optical storage device, an electromagnetic storage device, asemiconductor storage device, or any suitable combination of theforegoing. A non-exhaustive list of more specific examples of thecomputer readable storage medium includes the following: a portablecomputer diskette, a hard disk, a random access memory (RAM), aread-only memory (ROM), an erasable programmable read-only memory (EPROMor Flash memory), a static random access memory (SRAM), a portablecompact disc read-only memory (CD-ROM), a digital versatile disk (DVD),a memory stick, a floppy disk, a mechanically encoded device such aspunch-cards or raised structures in a groove having instructionsrecorded thereon, and any suitable combination of the foregoing. Acomputer readable storage medium, as used herein, is not to be construedas being transitory signals per se, such as radio waves or other freelypropagating electromagnetic waves, electromagnetic waves propagatingthrough a waveguide or other transmission media (e.g., light pulsespassing through a fiber-optic cable), or electrical signals transmittedthrough a wire.

Computer readable program instructions described herein can bedownloaded to respective computing/processing devices from a computerreadable storage medium or to an external computer or external storagedevice via a network, for example, the Internet, a local area network, awide area network and/or a wireless network. The network may comprisecopper transmission cables, optical transmission fibers, wirelesstransmission, routers, firewalls, switches, gateway computers and/oredge servers. A network adapter card or network interface in eachcomputing/processing device receives computer readable programinstructions from the network and forwards the computer readable programinstructions for storage in a computer readable storage medium withinthe respective computing/processing device.

Computer readable program instructions for carrying out operations ofthe present invention may be assembler instructions,instruction-set-architecture (ISA) instructions, machine instructions,machine dependent instructions, microcode, firmware instructions,state-setting data, configuration data for integrated circuitry, oreither source code or object code written in any combination of one ormore programming languages, including an object oriented programminglanguage such as Smalltalk, C++, or the like, and procedural programminglanguages, such as the “C” programming language or similar programminglanguages. The computer readable program instructions may executeentirely on the user's computer, partly on the user's computer, as astand-alone software package, partly on the user's computer and partlyon a remote computer or entirely on the remote computer or server. Inthe latter scenario, the remote computer may be connected to the user'scomputer through any type of network, including a local area network(LAN) or a wide area network (WAN), or the connection may be made to anexternal computer (for example, through the Internet using an InternetService Provider). In some embodiments, electronic circuitry including,for example, programmable logic circuitry, field-programmable gatearrays (FPGA), or programmable logic arrays (PLA) may execute thecomputer readable program instructions by utilizing state information ofthe computer readable program instructions to personalize the electroniccircuitry, in order to perform aspects of the present invention.

Aspects of the present invention are described herein with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems), and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer readable program instructions.

These computer readable program instructions may be provided to aprocessor of a general purpose computer, special purpose computer, orother programmable data processing apparatus to produce a machine, suchthat the instructions, which execute via the processor of the computeror other programmable data processing apparatus, create means forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks. These computer readable program instructionsmay also be stored in a computer readable storage medium that can directa computer, a programmable data processing apparatus, and/or otherdevices to function in a particular manner, such that the computerreadable storage medium having instructions stored therein comprises anarticle of manufacture including instructions which implement aspects ofthe function/act specified in the flowchart and/or block diagram blockor blocks.

The computer readable program instructions may also be loaded onto acomputer, other programmable data processing apparatus, or other deviceto cause a series of operational steps to be performed on the computer,other programmable apparatus or other device to produce a computerimplemented process, such that the instructions which execute on thecomputer, other programmable apparatus, or other device implement thefunctions/acts specified in the flowchart and/or block diagram block orblocks.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods, and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof instructions, which comprises one or more executable instructions forimplementing the specified logical function(s). In some alternativeimplementations, the functions noted in the blocks may occur out of theorder noted in the Figures. For example, two blocks shown in successionmay, in fact, be executed substantially concurrently, or the blocks maysometimes be executed in the reverse order, depending upon thefunctionality involved. It will also be noted that each block of theblock diagrams and/or flowchart illustration, and combinations of blocksin the block diagrams and/or flowchart illustration, can be implementedby special purpose hardware-based systems that perform the specifiedfunctions or acts or carry out combinations of special purpose hardwareand computer instructions.

In addition to the above, one or more aspects may be provided, offered,deployed, managed, serviced, etc. by a service provider who offersmanagement of customer environments. For instance, the service providercan create, maintain, support, etc. computer code and/or a computerinfrastructure that performs one or more aspects for one or morecustomers. In return, the service provider may receive payment from thecustomer under a subscription and/or fee agreement, as examples.Additionally or alternatively, the service provider may receive paymentfrom the sale of advertising content to one or more third parties.

In one aspect, an application may be deployed for performing one or moreembodiments. As one example, the deploying of an application comprisesproviding computer infrastructure operable to perform one or moreembodiments.

As a further aspect, a computing infrastructure may be deployedcomprising integrating computer readable code into a computing system,in which the code in combination with the computing system is capable ofperforming one or more embodiments.

As yet a further aspect, a process for integrating computinginfrastructure comprising integrating computer readable code into acomputer system may be provided. The computer system comprises acomputer readable medium, in which the computer medium comprises one ormore embodiments. The code in combination with the computer system iscapable of performing one or more embodiments.

Although various embodiments are described above, these are onlyexamples. For example, computing environments of other architectures canbe used to incorporate and use one or more embodiments. Further,different instructions, instruction formats, instruction fields and/orinstruction values may be used. Many variations are possible.

Further, other types of computing environments can benefit and be used.As an example, a data processing system suitable for storing and/orexecuting program code is usable that includes at least two processorscoupled directly or indirectly to memory elements through a system bus.The memory elements include, for instance, local memory employed duringactual execution of the program code, bulk storage, and cache memorywhich provide temporary storage of at least some program code in orderto reduce the number of times code must be retrieved from bulk storageduring execution.

Input/Output or I/O devices (including, but not limited to, keyboards,displays, pointing devices, DASD, tape, CDs, DVDs, thumb drives andother memory media, etc.) can be coupled to the system either directlyor through intervening I/O controllers. Network adapters may also becoupled to the system to enable the data processing system to becomecoupled to other data processing systems or remote printers or storagedevices through intervening private or public networks. Modems, cablemodems, and Ethernet cards are just a few of the available types ofnetwork adapters.

The terminology used herein is for the purpose of describing particularembodiments only and is not intended to be limiting of the invention. Asused herein, the singular forms “a”, “an” and “the” are intended toinclude the plural forms as well, unless the context clearly indicatesotherwise. It will be further understood that the terms “comprise” (andany form of comprise, such as “comprises” and “comprising”), “have” (andany form of have, such as “has” and “having”), “include” (and any formof include, such as “includes” and “including”), and “contain” (and anyform contain, such as “contains” and “containing”) are open-endedlinking verbs. As a result, a method or device that “comprises”, “has”,“includes” or “contains” one or more steps or elements possesses thoseone or more steps or elements, but is not limited to possessing onlythose one or more steps or elements. Likewise, a step of a method or anelement of a device that “comprises”, “has”, “includes” or “contains”one or more features possesses those one or more features, but is notlimited to possessing only those one or more features. Furthermore, adevice or structure that is configured in a certain way is configured inat least that way, but may also be configured in ways that are notlisted.

The corresponding structures, materials, acts, and equivalents of allmeans or step plus function elements in the claims below, if any, areintended to include any structure, material, or act for performing thefunction in combination with other claimed elements as specificallyclaimed. The description of the present invention has been presented forpurposes of illustration and description, but is not intended to beexhaustive or limited to the invention in the form disclosed. Manymodifications and variations will be apparent to those of ordinary skillin the art without departing from the scope and spirit of the invention.The embodiment was chosen and described in order to best explain theprinciples of one or more aspects of the invention and the practicalapplication, and to enable others of ordinary skill in the art tounderstand one or more aspects of the invention for various embodimentswith various modifications as are suited to the particular usecontemplated.

What is claimed is:
 1. A computer-implemented method comprising:monitoring use of one or more files received on a mobile device;deriving contextual user preferences for one or more future automatedfile transfers to the mobile device based on the monitoring; and sendinga contextual user preference request from the mobile device to an othermobile device based, at least in part, on the other mobile device beingwithin mobile ad hoc network transfer range of the mobile device, thecontextual user preference request requesting that at least one file onthe other mobile device related to at least one of the contextual userpreferences be automatically transferred to the mobile device usingmobile ad hoc network transfer.
 2. The computer-implemented method ofclaim 1, wherein the other mobile device is an identified contact in themobile device, and the one or more files received on the mobile devicewere received via mobile ad hoc network transfer.
 3. Thecomputer-implemented method of claim 2, wherein the sending is furtherbased, at least in part, on a context of a current location of themobile device matching a context associated with the at least one of thecontextual user preferences.
 4. The computer-implemented method of claim1, wherein the monitoring comprises storing data associated with thefile(s) received on the mobile device, and tracking how the file(s)received on the mobile device is used.
 5. The computer-implementedmethod of claim 4, wherein the one or more files received on the mobiledevice were received via mobile ad hoc network transfer, and the dataincludes identification of one or more mobile devices sending the one ormore files to the mobile device, and for at least one file of the one ormore files a location where transfer of the at least file via mobile adhoc network transfer occurred.
 6. The computer-implemented method ofclaim 4, wherein the one or more files received on the mobile devicewere received via mobile ad hoc network transfer, and the data includesfor each file: an identification of a sending mobile device; anidentification of the file received via ad hoc network transfer; alocation where transfer of the file via mobile ad hoc network transferoccurred; and a date and time of the transfer.
 7. Thecomputer-implemented method of claim 4, wherein the deriving comprisesanalyzing the data on how the file(s) received on the mobile device isused, and the file(s) itself to derive the contextual user preferencesfor the one or more future automated file transfers.
 8. A system forfacilitating mobile ad hoc network exchange of a file between mobiledevices, the system comprising: a memory; and a processing circuitcommunicatively coupled to the memory, wherein the system performs amethod comprising: monitoring use of one or more files received on amobile device; deriving contextual user preferences for one or morefuture automated file transfers to the mobile device based on themonitoring; and sending a contextual user preference request from themobile device to an other mobile device based, at least in part, on theother mobile device being within mobile ad hoc network transfer range ofthe mobile device, the contextual user preference request requestingthat at least one file on the other mobile device related to at leastone of the contextual user preferences be automatically transferred tothe mobile device using mobile ad hoc network transfer.
 9. The system ofclaim 8, wherein the other mobile device is an identified contact in themobile device, and the one or more files received on the mobile devicewere received via mobile ad hoc network transfer.
 10. The system ofclaim 9, wherein the sending is further based, at least in part, on acontext of a current location of the mobile device matching a contextassociated with the at least one of the contextual user preferences. 11.The system of claim 8, wherein the monitoring comprises storing dataassociated with the file(s) received on the mobile device, and trackinghow the file(s) received on the mobile device are used.
 12. The systemof claim 11, wherein the deriving comprises analyzing the data on howthe file(s) received on the mobile device is used, and the file(s)itself to derive the contextual user preferences for the one or morefuture automated file transfers.
 13. A computer program product forfacilitating mobile ad hoc network exchange of a file between mobiledevices, the computer program product comprising: a computer readablestorage medium having computer readable program code embodied therewith,the computer readable program code being executable by a processor toperform a method comprising: monitoring use of one or more filesreceived on a mobile device; deriving contextual user preferences forone or more future automated file transfers to the mobile device basedon the monitoring; and sending a contextual user preference request fromthe mobile device to an other mobile device based, at least in part, onthe other mobile device being within mobile ad hoc network transferrange of the mobile device, the contextual user preference requestrequesting that at least one file on the other mobile device related toat least one of the contextual user preferences be automaticallytransferred to the mobile device using mobile ad hoc network transfer.14. The computer program product of claim 13, wherein the other mobiledevice is an identified contact in the mobile device, and the one ormore files received on the mobile device were received via mobile ad hocnetwork transfer.
 15. The computer program product of claim 14, whereinthe sending is further based, at least in part, on a context of acurrent location of the mobile device matching a context associated withthe at least one of the contextual user preferences.
 16. The computerprogram product of claim 15, wherein the deriving comprises analyzingdata on how the file(s) received on the mobile device is used, and thefile(s) itself to derive the contextual user preferences for the one ormore future automated file transfers.